home *** CD-ROM | disk | FTP | other *** search
/ Turnbull China Bikeride / Turnbull China Bikeride - Disc 2.iso / ACORNUSERS / EMULATOR / SNES9X / README.TXT next >
Text File  |  1998-07-09  |  30KB  |  677 lines

  1. Snes9x v1.05 09-JUL-1998
  2. ========================
  3.  
  4. Contents
  5. ========
  6. Changes Since Last Release
  7. Introduction
  8. What's Emulated
  9. What's Not
  10. What You Will Need
  11. Getting Started/Command Line Options
  12. Keyboard Controls
  13. Joystick Support
  14. SideWinder Support
  15. GrIP Support
  16. Super FX
  17. Problems With ROMs
  18. Sound Problems
  19. Converting ROM Images
  20. Speeding up the Emulation
  21. Credits
  22.  
  23. Changes Since Last Release
  24. ==========================
  25.  
  26. 1.05
  27. - The master volumn disable code was looking that the wrong variable!
  28. - Fixed crash bug in newer sound code if a ROM tried to start a sample
  29.   playing who's data went past the end of SPC700 memory. (Cannon Fodder)
  30. 1.04
  31. - Fixed DSP1 ROM header detection bug.
  32. - More DSP1 work; still nothing works, although I know the multiply command
  33.   is correct because I've compared the results against a real DSP1.
  34. 1.03
  35. - Oops, the multi-player 5 disable code change broke the multi-player 5 being
  36.   the default controller.
  37. - Implemented the colour window on the main screen - now Zelda's oval zoom
  38.   window displays correctly and Krusty's Super Fun House clips the left-most
  39.   8 pixels as it does on the real SNES.
  40. - TERRANIGMA didn't like me returning a random value when it attempted to 
  41.   read a channel's the current sample byte.
  42. - Hacked in initial support for mode 7 priority-per-pixel - the priority bit
  43.   doesn't actually change the priority of the pixel but the two games that I
  44.   know of that use the feature look OK. (Winter Extreme Skiing and the
  45.   intro of Tiny Toons Adventures).
  46. - Colour addition/subtraction code now uses RGB565 rather than RGB555
  47.   calculations - helps a little with the loss of the bottom bit of SNES
  48.   colour data.
  49. - DSP1 emulation started - nothing works yet.
  50. 1.02
  51. - Switched to adding back drop colour rather than fixed colour when
  52.   sub-screen addition is enabled but there's nothing on the sub-screen.
  53.   Uniracers seems to need it. - DISABLED it again. Causes problems for
  54.   other ROMs and Uniracers itself on later screens.
  55. - Fixed XOR window logic combination mode and area inversion code, now
  56.   Uniracers works correctly.
  57. - Oops, if colour window and half colour addition/subtraction were both
  58.   switched on, area outside colour window was still being halved, it shouldn't.
  59.   Hacky fix at the moment until I implement the correct fix.
  60. - Fixed several bugs with the mosaic effect and 16x16 tiles and a few
  61.   possible background scroll offset bugs and the mosaic effect.
  62. - Optimised the sound sample generation code for cases when the SNES
  63.   sample playback frequency was higher than the sound card playback rate.
  64. - Fixed possible click sound when a sample was first started to be played.
  65. 1.01
  66. - Corrected scanline count for PAL games - should be 312 lines verses 262 for
  67.   NTSC. Was causing slow music on PAL games.
  68. - Added error correction code to the SPC700 timer update code - the
  69.   SPC700 timers are updated using the emulated h-blank handler which is
  70.   called every emulated 63.6 microseconds (15.720KHz) but the SPC700 timers
  71.   need to be updated at multiples of 8KHz, hence the error. Was causing
  72.   music to be played slightly too fast.
  73. - Switched back to using C SPC700 code - the old SPC700 asm code was lacking
  74.   several optimisations that the C version had. It also had multiple
  75.   speed hack cycle skipping bugs. Plus I hadn't even finished optimising
  76.   all the code from the last time I converted the C compiler output.
  77. - Optimised SPC700 memory access routines a little.
  78. - Disabled code that prevented ROMs updating SPC700 timer values while the
  79.   timer was running - it seems like it is allowed, even though docs on the
  80.   'net I've seen say its not.
  81.  
  82. Introduction
  83. ============
  84.  
  85. Snes9x is a portable, freeware Super Nintendo Entertainment System (SNES)
  86. emulator. It basically allows you to play most games designed for the SNES
  87. and Super Famicom Nintendo game systems on your PC or Workstation; they
  88. include some real gems that were only ever released in Japan.
  89.  
  90. If absolute maxiumum speed is your only interest and you have a PC, look
  91. elsewhere for SNES emulation, I recommend ZSNES. So why use Snes9x at all?
  92.  
  93. o Compatabiltity: for every game that doesn't work on Snes9x, I'll be able to
  94.   find two or more that do work but don't work on ZSNES or any other emulator.
  95. o Sound: Snes9x generally has better sound generation code, its currently the
  96.   only emulator with echo, FIR filter and pitch modulation support. 
  97. o Portability: its the only active SNES emulator available on non-Intel
  98.   platforms, and with the recent source code release, the number of platforms
  99.   is bound to increase.
  100. o Features: Snes9x has a lot in common with other SNES emulators, it is 
  101.   missing a few features on the DOS port that some people might consider
  102.   important; again with the source code release, that will soon change. It has
  103.   a few unique features such as multi-player adaptor emulation - if you can
  104.   connect enough joy-pads to your computer then up to five people can play
  105.   at once on some SNES games.
  106.  
  107. Snes9x is the result of well over a year and a half's worth of part-time
  108. hacking, coding, recoding, debugging, divorce, etc. (just kidding about the
  109. divorce bit). Snes9x is coded in C++, with three assembler CPU emulation
  110. cores on the i386 Linux, MS-DOS and Windows ports.
  111.  
  112. Snes9x is better than a real SNES:
  113. o Freeze a game at any position, then restore the game to that exact spot at
  114.   a later date - ideal for saving a game just before a difficult bit.
  115. o Built-in cheat cartridge.
  116. o Built-in peripheral emulation. The SNES mouse, Multi-player 5 and SuperScope
  117.   external add-ons are all emulated, they cost extra money with a real SNES.
  118. o Stereo sound - yes I know the SNES produced stereo sound, but who actual
  119.   paid the inflated price for the special lead just so you could hear it?
  120. o No more cartridge contact cleaning!
  121. o Some SNES hardware features that be turned on and off during game play,
  122.   games might be using one of these features to deliberately make a section
  123.   of the game more difficult. Easy, just turn the feature off.
  124. o Crystal clear graphics on your computer monitor - actually that could be a
  125.   minus point as well because the fuzzy T.V. picture could be used to
  126.   disguise the fact that most SNES games output only a 256x224 pixel display.
  127.  
  128. Snes9x is worse than a real SNES:
  129. o Unless your computer is very fast (Pentium II+), some games just can't
  130.   hit every frame being rendered and the emulator starts to omit rendering
  131.   some frames to keep the emulator running at a constant speed - to you
  132.   it appears as if the graphics aren't moving as smoothly as they should.
  133. o Not all games work; bugs and missing features cause some games to fail to
  134.   run or renders them unplayable.
  135. o You have to wait for your computer to boot before you can play games,
  136.   no waiting on the real SNES!
  137. o The SNES has an analog low-pass sound filter that give a nice bass to
  138.   all the sounds and music - Snes9x doesn't emulate this. If you have
  139.   a posh sound card, you could try fiddling with it mixer controls to produce
  140.   a similar effect. Lower the playback rate can have a similar effect.
  141.  
  142. What's Emulated
  143. ===============
  144. - The 65c816 main CPU.
  145. - The Sony SPC700 sound CPU.
  146. - SNES variable length cycles.
  147. - 8 channel DMA and H-DMA (raster effects).
  148. - All background modes, 0 to 7.
  149. - Sound DSP, with eight 16-bit stereo channels, compressed samples, hardware
  150.   attack-decay-sustain-release volume processing, echo, pitch modulation
  151.   and digital FIR sound filter.
  152. - 8x8, 16x8 and 16x16 tile sizes, flipped in either direction.
  153. - 32x32, 32x64, 64x32 and 64x64 screen tile sizes.
  154. - H-IRQ, V-IRQ and NMI.
  155. - Mode 7 screen rotation, scaling and screen flipping.
  156. - Vertical offset-per-tile in modes 2, and 4.
  157. - 256x224, 256x239, 512x224, 512x239, 512x448 and 512x478 SNES screen
  158.   resolutions.
  159. - Sub-screen and fixed color transparency effects.
  160. - Mosaic effect.
  161. - Single and dual graphic clip windows, with all four logic combination mode,
  162.   although XOR and X-NOR are still a bit buggy.
  163. - Color effects only inside a window.
  164. - 128 8x8, 16x16, 32x32 or 64x64 sprites, flipped in either direction.
  165. - SNES palette changes during frame.
  166. - Super FX, a 21/10MHz RISC CPU found in the cartridge of several games.
  167. - SNES mouse.
  168. - SuperScope (light gun) emulated using computer mouse.
  169. - Multi-player 5 - allowing up to five people to play games simultaneously.
  170. - Game-Genie, Action Replay and Gold Finger cheat codes.
  171. - Multiple ROM image formats, with or without a 512 byte copier header.
  172. - Single or split images, compressed using gzip, and interleaved in one of two
  173.   ways.
  174. - Auto S-RAM (battery backed RAM) loading and saving.
  175. - Freeze-game support, now portable between different Snes9x ports.
  176.  
  177. What's Not
  178. ==========
  179.  
  180. - DSP1 support. The DSP1 is a math co-processor chip that was inside the
  181.   cartridge of some games, notably Mario Kart. Work has started on this
  182.   but no game works correctly yet. Are there any ex-SNES programmers out
  183.   there who know the DSP1 who are willing to help?
  184. - Any other odd chips that manufactures sometimes placed inside the
  185.   cartridge to enhance games and as a nice side-effect, also act as an 
  186.   anti-piracy measure.
  187. - Direct color mode - uses tile and palette-group data directly as RGB value.
  188. - Pseudo hi-res. mode - SNES hardware uses interpolation to give apparent
  189.   increase in horizontal resolution.
  190. - Mosaic effect on mode 7.
  191. - Color subtraction with the halve-the-result flag set. Didn't think any
  192.   games used it, but zsKnight tells me Chrono Trigger does.
  193. - A couple of SPC700 instructions that I can't work out what they should do.
  194. - Fixed color and mosaic effects in SNES hi-res. (512x448) modes.
  195. - Offset-per-tile in mode 6. Luckily I haven't found a game that uses it, yet.
  196. - Horizontal offset-per-tile in modes 2, 4 and 6. Just noticed that Chrono
  197.   Trigger uses that.
  198. - Cycle counting on SPC700 emulation.
  199. - Executing SPC700 instructions during SNES DMA operation.
  200. - Exact sound CPU and sound generation synchronization.
  201. - Various pixel priority problems with sprites and transparency effects.
  202.  
  203. What You Will Need
  204. ==================
  205.  
  206. CPU
  207. ---
  208. Faster the better, but 486DX4 100 minimum when using 8-bit graphics and
  209. minimal or no sound, Pentium 166 or higher for transparency effects and
  210. Pentium 200 or higher for Super FX games.
  211.  
  212. Memory
  213. ------
  214. 8Mb for DOS (absolute minimum) and 16Mb for Windows 95 and Linux.
  215. Sun workstations shouldn't have a problem.
  216.  
  217. Screen
  218. ------
  219. Fast graphics card. DOS prefers to have VESA2 support, so it can access a
  220. 320x240 16-bit screen mode. Snes9x will make use of hardware bit-blitting,
  221. via the Allegro library, if the lastest Display Doctor is also loaded and
  222. it supports your video card.
  223.  
  224. X Window System versions needs an 8, 16 or 24 bit X server running;
  225. transparency effects are available at all depths, but don't look good with
  226. only an 8-bit display.
  227.  
  228. The Linux SVGA version is limited to 8-bit only due to poor graphic card
  229. support in the VGA library.
  230.  
  231. Disk Space
  232. ----------
  233. 1Mb for the emulator.
  234.  
  235. Software
  236. --------
  237. Access to SNES ROM images in *.smc, *.sfc, *.fig or *.1, *.2, or sf32xxxa,
  238. sf32xxxb, etc., format otherwise you will have nothing to run!
  239.  
  240. Please note, it is illegal in most countries to have commercial ROM images
  241. without also owning the actual SNES ROM cartridge.
  242.  
  243. Getting Started
  244. ===============
  245.  
  246. From a shell just type:
  247. snes9x <ROM filename>
  248.  
  249. ROM images are normally loaded from the directory .\roms. This can be
  250. changed by specifying a pathname with the image name or setting the
  251. environment variable SNES96_ROM_DIR to point to a different directory.
  252.  
  253. Freeze game files and S-RAM save files are normally read from and written to
  254. the directory .\snesnaps, for DOS and $HOME/.snes96_snapshots for UNIX.
  255. This can be changed by setting the environment variable SNES96_SNAPSHOT_DIR
  256. to point to a different directory.
  257.  
  258. Some command line flags are available:
  259.  
  260. Graphics options:
  261. -tr or transparency (default: off)
  262.    Enable transparency effects, also enabled 16-bit screen mode selection.
  263. -16 or -sixteen (default: off)
  264.    Enable 16-bit screen mode, allows palette changes but no transparency
  265.    effects.
  266. -hires or -hi (default: lo-res.)
  267.    Enable support for SNES hi-res. and interlace modes. USE ONLY IF GAME
  268.    REQUIRES IT (FEW DO) BECAUSE IT REALLY SLOWS DOWN THE EMULATOR.
  269. -scale or -sc (default: off)
  270.    Stretch the SNES display to fit the whole of the computer display.
  271. -m 0-12 or -mode 0-12 DOS PORT ONLY (default: based on above options)
  272.    0 - 320x240, ModeX 8-bit, slow.
  273.    1 - 320x200 8-bit, faster but clips part of display.
  274.    2 - 256x256 8-bit, best when using 8-bit graphics, but might not work with
  275.                       all graphics cards.
  276.    3 to 6 - 640x480 8-bit, various auto-detect or VESA modes.
  277.    7 - 640x400 8-bit.
  278.    8 - 800x600 8-bit.
  279.    9 - 320x240 16-bit.
  280.    10 - 640x480 16-bit.
  281.    11 - 640x400 16-bit.
  282.    12 - 800x600 16-bit.
  283.  
  284. A trick I use on the DOS port is to lock the screen mode to lo-res.,
  285. and switch on hi-res. support and scaling. e.g.:
  286.  
  287. snes9x -m 9 -hi -scale romname.smc
  288.  
  289. I actually set up a batch file (e.g. snes.bat) which contains:
  290.  
  291. <pathname to snes9x directory>\snes9x -m 9 -hi -scale %1%
  292.  
  293. then in Windows, I just drag-and-drop ROM images onto the batch file icon.
  294.  
  295. Sound options:
  296. -ns or -nosound
  297.    Disable sound CPU emulation and sound output, useful for the few ROMs
  298.    where sound emulation causes them to lock up due to timing errors.
  299. -sk 0-3 or -soundskip 0-3 (default: 0)
  300.    ONLY USED IF SOUND IS DISABLED. 
  301. -stereo or -st (default: mono)
  302.    Enable stereo sound output.
  303. -r 0-7 or -soundquality or -sq 0-7 (default: 4)
  304.    Sound playback rate/quality:
  305.        0 - disable sound, 1 - 8192, 2 - 11025, 3 - 16500, 4 - 22050 (default),
  306.        5 - 29300, 6 - 36600, 7 - 44000.
  307. -b size or -buffersize size or -bs size (default: auto-select)
  308.    Sound playback buffer size in bytes 128-4096.
  309. -envx or -ex (default: off)
  310.    Enable volume envelope height reading by the sound CPU. Can cure sound
  311.    repeat problems with some games, while causing others to lock if enabled.
  312. -nosamplecaching or -nsc or -nc (default: on)
  313.    Disable decompressed sound sample caching. Decompressing samples takes time,
  314.    slowing down the emulator. Normally the decompressed samples are saved
  315.    just in case they need to be played again, but the way samples are stored
  316.    and played on the SNES, it can result in a click sound or distortion when
  317.    caching samples with loops in them.
  318. -noecho or -ne (default: on)
  319.    Turn off sound echo and FIR filter effects. Processing these effects can
  320.    really slow down a non-MMX Pentium machine due to the number of calculations
  321.    required to implement these features.
  322. -ratio 1+ or -ra 1+ (default: 2)
  323.    Ratio of 65c816 to SPC700 instructions. Default of 2 is fine for most
  324.    games, but 3 gets Fifa 96 and games written by the software house Human
  325.    working. There will be others.
  326. -nomastervolume or -nmv (default: on)
  327.    Disable emulation of the sound DSP master volume control. Some ROMs set
  328.    the volume level very low requiring you to turn up the volume level of
  329.    your speakers introducing more background noise. Use this option to
  330.    always have the master volume set on full and to by-pass a bug which
  331.    prevents the music and sound effects being heard on Turrican.
  332.  
  333. Cheat options:
  334. -gg <code> or -gamegenie <code>
  335.    Supply a Game Genie code for the current ROM. Up to 10 codes can be in
  336.    affect at once. Game Genie codes for many SNES games are available from:
  337.    http://game-genie.nvc.cc.ca.us
  338. -ar <code> or -actionreplay <code>
  339.    Supply a Pro-Action Reply code for the current ROM. Up to 10 codes can be in
  340.    affect at once. At the moment, codes which alter RAM do not work.
  341. -gf <code> or -goldfinger <code>
  342.    Supply a Gold Finger code for the current ROM. Up to 10 codes can be in
  343.    affect at once.
  344.  
  345. Speed up/slow down options: (See "Speeding Up The Emulation")
  346. -f <frame skip count> or -frameskip <frame skip count> (default: auto-adjust)
  347.    Set this value to deliberately fix the frame skip rate and disable auto-
  348.    speed regulation. Use a larger value faster emulation but more jerky
  349.    movement and a smaller value for smooth but slower screen updates.
  350.    Use '+' and '-' keys to modify the value during a game.
  351.    Ideal for some Super FX games that confuse the auto-adjust code or
  352.    for games that deliberately flash the screen every alternate frame.
  353. -h <0-200> or -cycles <0-200>(default: 100)
  354.    Percentage of CPU cycles to execute per scan line, decrease value to
  355.    increase emulation frame rate. Most ROMs work with a value of 85 or above.
  356. -j or -nojoy
  357.    Turn off joystick, SideWinder and GrIP detection (joystick polling on the
  358.    PC slows the emulator down).
  359.  
  360. ROM image format options:
  361. -i or -interleaved (default: auto-detect)
  362.    Force interleaved ROM image format.
  363. -i2 or -interleaved (default: can't be auto-detected)
  364.    Force alternate interleaved format (i.e. most Super FX games).
  365. -hirom or -fh or -hr (default: auto-detect)
  366.    Force Hi-ROM memory map for ROMs where the Hi-ROM header test fails.
  367. -lorom or -fl or -lr (default: auto-detect)
  368.    Force Lo-ROM memory map for ROMs where the Hi-ROM header test fails)
  369. -p or -pal (default: auto-detect)
  370.    Fool ROM into thinking this is a PAL SNES system.
  371. -n or -ntsc (default: auto-detect)
  372.    Fool ROM into thinking this is a NTSC SNES system.
  373. -l or -layering (default: off)
  374.    Swap background layer priorities from background involved in sub-screen
  375.    addition/subtraction. Can improve some games play-ability - no need to
  376.    constantly toggle background layers on and off to read text/see maps, etc.
  377.    Toggle feature on and off during game by pressing '8'.
  378.    Not used if transparency effects are enabled.
  379. -l <freeze game file name> or -loadsnapshot <freeze game file name>
  380.    Load snapshot file and restart game from saved position.
  381. -nh or -nohdma (default: H-DMA enabled)
  382.    Turn off the H-DMA emulation. Pressing '0' during a game toggles H-DMA on
  383.    and off.
  384. -n or -nospeedhacks (default: speed hacks)
  385.    Turn off a couple of speed hacks. The hacks boost the speed of many ROMs
  386.    but cause problems a few ROMs.
  387. -nw or -nowindows (default: graphics windows emulated)
  388.    Disable graphics windows emulation. Use 'backspace' key during a game to
  389.    toggle the emulation on and off.
  390.  
  391. Joystick options:
  392. -a 
  393.    Alternate SideWinder game pad button mappings.
  394. -4 or -four (default: auto-detect two-button joystick)
  395.    Joystick connected to computer has 4 buttons.
  396. -6 or -six (default: auto-detect two-button joystick)
  397.    Joystick connected to computer has 6 buttons.
  398. -8 or -eight (default: auto-detect two-button joystick)
  399.    Joystick connected to computer has 8 buttons.
  400. -s or -swap
  401.    Swap emulated joy-pad 1 and 2 around, pressing '6' during a game does the
  402.    same thing.
  403. -j or -nojoy
  404.    Turn off joystick, SideWinder and GrIP detection (joystick polling on the
  405.    PC slows the emulator down).
  406.  
  407. For example, to start a game called "mario", with sound, and transparency
  408. effects, type:
  409.  
  410. snes9x -tr mario.smc
  411.  
  412. Keyboard Controls
  413. =================
  414.  
  415. While the emulator is running:
  416. 'Escape'                 Quit the emulator
  417. 'Pause' or 'Scroll Lock' Pause the emulator
  418.  
  419. Joy-pad 1:
  420. 'up' or 'u'             Up direction
  421. 'down', 'j' or 'n'      Down direction
  422. 'left' or 'h'           Left direction
  423. 'right' or 'k'          Right direction
  424. 'a', 'v' or 'q'         TL button
  425. 'z', 'b' or 'w'         TR button
  426. 's', 'm' or 'e'         X button
  427. 'x', ',' or 'r'         Y button
  428. 'd', '.' or 't'         A button
  429. 'c', '/' or 'y'         B button
  430. 'return'                Start button
  431. 'space'                 Select button
  432.  
  433. 'Mouse left'            Mouse left button or SuperScope fire button.
  434. 'Mouse right'           Mouse right button or SuperScope cursor button.
  435.  
  436. 'tab'                   SuperScope turbo toggle switch.
  437. '`'                     SuperScope pause button.
  438.  
  439. '0'                     Toggle H-DMA emulation on/off.
  440. '1'                     Toggle background 1 on/off.
  441. '2'                     Toggle background 2 on/off.
  442. '3'                     Toggle background 3 on/off.
  443. '4'                     Toggle background 4 on/off.
  444. '5'                     Toggle sprites (sprites) on/off
  445. '6'                     Toggle swapping of joy-pad one and two around
  446. '7'            Rotate between Multi-player 5, mouse on port 1,
  447.                         mouse on port 2 and SuperScope emulation.
  448. '8'                     Toggle background layer priorities for backgrounds
  449.                         involved in sub-screen addition/subtraction.
  450. '9'            Toggle transparency effects on and off - only if
  451.             16-bit screen mode selected.
  452. 'Backspace'        Toggle emulation of graphics window effects on/off.
  453.  
  454. '-'            Decrease frame redraw skip rate
  455. '+'            Increase frame redraw skip rate
  456.             The sequence is auto-frame rate adjust, render every
  457.                         frame, render 1 frame in two, render 1 frame in three,
  458.                         render 1 frame in four, etc.
  459.  
  460. Shift+'F1-F10'          Quick save a freeze game file.
  461. 'F1-F10'                Quick load a freeze game file, restoring a game to an
  462.                         exact position.
  463. Alt+'F2'                Load a game's saved position.
  464. Alt+'F3'                Save a game's position.
  465.  
  466. Alt+'F4' -> 'F11'    Toggle sound channels on/off.
  467. Alt+'F12'        Turn on all sound channels.
  468.  
  469. Joystick Support
  470. ================
  471.  
  472. Snes9x supports one or two 2-button joysticks, or one 4-button or 6-button
  473. joystick - this limitation is imposed by PC hardware.
  474.  
  475. On a 2-button joystick only the A and B SNES buttons are available, the
  476. remaining 4 can still be accessed via the keyboard.
  477.  
  478. The following diagram shows you the button layout for 6-button PC joy-pads
  479. that look similar to real SNES joy-pads:
  480.  
  481.      ---TL---           ---TR---
  482.  
  483.         ^                  X
  484.         |
  485.      <-   ->            Y     A
  486.         |       /  /
  487.         v                  B
  488.  
  489. Make sure the joystick is centered or no buttons pressed for joy-pads when
  490. the emulator is first started to enable auto-calibration to work.
  491.  
  492. SideWinder Support
  493. ==================
  494.  
  495. DOS and Linux Snes9x can auto-detect up to four or more Microsoft SideWinder
  496. game-pads.  A Pentium or faster computer is required with a speed-regulated
  497. joystick port.
  498.  
  499. Under Windows 95, Microsoft's latest 2.0 drivers prevent DOS applications
  500. accessing the joystick port directly and instead emulate a standard 4-button
  501. joystick, which Snes9x promptly auto-detects. The trick is to temporarily
  502. disable the Microsoft drivers so Snes9x can auto-detect the SideWinders and
  503. access all 14 of its buttons.
  504.  
  505. Try one of the following:
  506. - Reboot into DOS mode and run Snes9x from there.
  507. - Use the unload profiler option from the task bar icon popup menu, start
  508.   Snes9x, press the mode button twice on the sidewinder, quit Snes9x and
  509.   restart it again. Snes9x should have correctly auto-detected the SideWinder.
  510.   This trick only works if one SideWinder is plugged in.
  511. - From the Control Panel, double-click on the Game Controllers icon,
  512.   then press on the advanced tab, then change all the controller ID's to
  513.   none except the first, change that to 2-axis, 4-button joystick.
  514.   Start Snes9x. To go back to Windows drivers, change controller ID 1 back
  515.   to being a SideWinder gamepad.
  516.  
  517. Button mapping
  518. --------------
  519.  SNES                SideWinder           Alternate SideWinder (-a)
  520.  ----                ----------           -------------------------
  521.  A                   B                    A
  522.  B                   A                    B
  523.  X                   Y                    X
  524.  Y                   X                    Y
  525.  TL                  Trigger Left         Trigger Left
  526.  TR                  Trigger Right        Trigger Right
  527.  Start               Start                Start
  528.  Select              M                    M
  529.  
  530. GrIP Support
  531. ============
  532.  
  533. DOS Snes9x supports one or two Gravis GamePad Pros plugged into the joystick
  534. port. Make sure the GRIP.GLL file is in the same directory as Snes9x.exe
  535. or in one of directories listed in the GRIP environment variable.
  536.  
  537. Unfortunately, the official GrIP toolkit seems to use the same DOS timer
  538. as the Allegro library, and the Snes9x continually speeds up and slows down
  539. as the two libraries fight for control, which makes the native GrIP
  540. support worse than useless. Use -j to disable native GrIP support and use one
  541. of the external programs that map GrIP game-pads to key presses, until I
  542. can find a solution, that is.
  543.  
  544. Super FX
  545. ========
  546.  
  547. The Super FX is a 10/21MHz RISC CPU developed by Argonaut Software used as a
  548. game enhancer by several game tiles. Support is still buggy and I've no
  549. idea what the problem is. Oh well, may be one day. Anyway, games that work:
  550. Yoshi's Island (best single-player game on SNES, if you like platform games),
  551. Doom, Winter Gold and Dirt Trax FX.
  552.  
  553. Games that don't work:
  554. StarFox, Stunt Race FX, Vortex.
  555.  
  556. All games that actually work are extremely playable on my 200MHz K6 desktop
  557. machine. Frame rates will suffer for folks with slower machines.
  558.  
  559. Lots of Super FX ROM images available are in an odd interleaved format that
  560. I haven't worked out how to auto-detect. If your image isn't working try
  561. using the -i2 command line flag.
  562.  
  563. Problems With ROMs
  564. ==================
  565.  
  566. If the emulator just displays a black screen for over 10 seconds, then one
  567. of the following could be true:
  568.  
  569. 1) If its a SuperFX game, chances are its in interleaved2 format, try the -i2
  570.    switch.
  571. 2) Someone has edited the Nintendo ROM information area inside the ROM image
  572.    and Snes9x can't work out what format ROM image is in. Try playing
  573.    around with the ROM options: -i, -fl, -fh, -hd, -nh.
  574. 3) The ROM image is corrupt. If you're loading from CD, I know it might
  575.    sound silly, but is the CD dirty?
  576. 4) The 65c816 to SPC700 communication has failed. Try -ratio 3. If that
  577.    doesn't work, and you don't mind playing the game without sound, try 
  578.    -ns and then -ss 0 or -ss 1 or -ss 2 or -ss 3.
  579. 5) The original SNES ROM cartridge had additional hardware inside that is not
  580.    emulated yet and might never be - e.g. Street Fighter 2 Alpha,
  581.    all DSP1 games, etc. Work on DSP1 emulation has started but no game
  582.    using it works correctly yet.
  583. 6) Its a 48Mbit game and I haven't managed to work out the SNES memory map
  584.    for such games. Now the Snes9x source code has been released, anyone
  585.    willing to take up the challenge?
  586.  
  587. Sound Problems
  588. ==============
  589.  
  590. No sound coming from any SNES game using Snes9x? Could be any or all of
  591. these:
  592.  
  593. - Your computer doesn't have a Sound Blaster or true compatible sound card
  594.   fitted. Wait for the Windows 95/NT port.
  595. - The BLASTER environment variable isn't setup correctly.
  596. - The sound card mixer volume has been turned right down. Use the mixer
  597.   utility that should have come with the card to set the volume.
  598. - You haven't got the volume control on your speakers turned down, have you?
  599.  
  600. General sound problems:
  601.  
  602. - Music plays very slowly on some games, try the -nh option.
  603. - Sound samples keep getting repeatedly played on some games, try -envx.
  604. - Sound quality is poor. Only true Sound Blaster 16 cards and better support
  605.   16-bit sound samples with the Allegro driver I'm using, everything else
  606.   has to put up with 8-bit sound. Buy a better card, or wait for the
  607.   Windows port. One day I might get around to using the SEAL library, it
  608.   supports a wider range of sound cards in 16-bit mode, including some Sound
  609.   Blaster incompatible cards.
  610.  
  611. Converting ROM Images
  612. =====================
  613.  
  614. If you have a ROM image in several pieces, simply rename them so their
  615. filename extensions are numbered: e.g. game.1, game.2, etc. Then, when
  616. loading the ROM image, just specify the name of the first part; the remaining
  617. parts will be loaded automatically.
  618.  
  619. If they are already in the form sf32xxxa, sf32xxxb, etc., you don't even have
  620. to rename them; just specify the name of the first part, as above.
  621.  
  622. Emulation speed
  623. ===============
  624.  
  625. Emulating an SNES is very compute intensive, with its two or three CPUs,
  626. an 8 channel digital sound processor with real-time sound sample decompression
  627. and stereo sound, two custom graphics processors, etc.
  628.  
  629. If you only have a 486 machine, you will need to stick to using only 8-bit
  630. graphics and minimal or no sound:
  631.  
  632. With sound:
  633. snes9x -ne -r 1 -m 2 -mono <rom filename>
  634.  
  635. Without sound:
  636. snes9x -ns -m 2 <ROM filename>.
  637.  
  638. Disabling the joystick support will also help (-j).
  639.  
  640. Users slower Pentium machines might want to turn off echo and digital FIR
  641. filter effects, due to the number of multiply operations needed to implement
  642. them. Use -ne option.
  643.  
  644. Got a big throbbing beast of a CPU under the cover of your computer? These
  645. options will sort out the men from the boys:
  646. snes9x -m 10 -r 5 -nc -scale <ROM filename>
  647.  
  648. Credits
  649. -------
  650.  
  651. - Jerremy Koot and Gary Henderson for all their hard work on previous versions
  652.   of Snes96, Snes97 and Snes9x.
  653. - Lstat for the original Super FX C emulation and information.
  654. - zsKnight and _Demo_ for the Intel Super FX assembler code.
  655. - zsKnight and _Demo_ for all the other ideas I've nicked off them; they've
  656.   nicked lots of my ideas and information too!
  657. - DiskDude's SNES Kart v1.6 document for the Game Genie(TM), Gold Finger and
  658.   Pro Action Replay cheat system information.
  659. - Lord ESNES for some nice chats and generally useful stuff.
  660. - Lee Hyde (lee@jlp1.demon.co.uk) for his quest for sound information and 
  661.   the Windows 95 icon.
  662. - Shawn Hargreaves for the rather good Allegro 3.0 DOS library.
  663. - Robert Grubbs for the SideWinder information - although I didn't use his
  664.   actual driver in the end.
  665. - Steve Snake for his insights into SNES sound sample decompression.
  666.  
  667. Super NES, SuperScope and Super FX are a trademarks of Nintendo. 
  668. Sun, Solaris and Sparc are all trademarks of Sun Microsystems, Inc.  
  669. Game Genie is a trademark of Lewis Galoob Toys, Inc.
  670. MS-DOS and Windows 95 are trademarks of Microsoft Corp.
  671. Intel, Pentium and MMX are all trademarks of Intel Corp.
  672. Sony is a trademark of Sony Corp.
  673. UNIX is a trademark of someone, I forget who, but its not AT&T, they sold it.
  674.  
  675. ------------------------------------------------------------------------------
  676. feenix65@hotmail.com
  677.